myFunction();
function myFunction(a,b,c=1,d) {
    console.log('方法参数上定义上有4个参数，第三个参数有默认值。');
    console.log('调用的时候传入参数个数',arguments.length);
    for (var i=0;i<arguments.length;i++){
        console.log('传入的第'+i+'个参数',arguments[i]);
    }
    console.log('定义的a,b,c三个参数:  '+a+' , '+b+' , '+c+' , '+d);
}

/**
 * 简单实现类似方法的重载
 */
function overloadedFunction() {
        switch (arguments.length) {
            case 0:
                overloadedFunctionArguments0();
                break;
            case 1:
                overloadedFunctionArguments1(arguments[0]);
                break;
            case 2:
                overloadedFunctionArguments2(arguments[0],arguments[1]);
                break;
        }
}

/**
 * 测试重载,没有传递参数执行的方法
 */
function overloadedFunctionArguments0() {
    console.log('您没有传递参数,不为您执行任何操作');
}
/**
 * 测试重载,传递了一个参数的方法
 */
function overloadedFunctionArguments1(number) {
    if (isNumber(number)) {
        console.log('您传递了'+number+'是一个数字,执行加十,结果为: '+(number+10));
    }else {
        console.log('您传递了'+number+'不是一个数字,不为您执行任何操作');
    }
}
/**
 * 测试重载,传递了两个参数的方法
 */
function overloadedFunctionArguments2(number1,number2) {
    for (var i =0 ;i<arguments.length;i++){
        if (!isNumber(arguments[i])) {
            console.log('您传递的'+arguments[i]+'不是一个数字,不为您执行任何操作');
            return;
        }
    }
    console.log('您传递了'+number1+'和'+number2+'是一个数字,执行相加,结果为: '+(number1+number2));
}

/**
 * 判断是否是或者是否能转换成数字数字
 * @param number
 * @returns {boolean}
 */
function isNumber(number) {
    if (isNaN(number)) {
        return false;
    }else {
        return true;
    }
}